//显示一个窗体
//用到Window类
//(function() {
//	Ext.onReady(function() {
//		//创建一个类对象
//		var win = new Ext.window.Window({
//			width:400,
//			height:500,
//			title:'first window'
//		});  //窗体已经准备好了
//		
//		//显示窗体
//		win.show();
//	});
//})();

//为一个按钮添加事件
//(function() {
//	Ext.onReady(function() {
//		//1. 得到按钮的dom对象
//		//2. 为按钮添加单击事件
//		//3. 单击的时候调用window对象show方法
//		var win = new Ext.window.Window({
//			width:400,
//			height:500,
//			title:'first window'
//		});  //窗体已经准备好了
//		//通过id获取某个标签
//		//on函数的一地个参数指定单击的时间
//		//第二个参数指定单击的处理函数
//		Ext.get("myButton").on("click", function() {
//			//alert(00);
//			win.show();
//		});
//	});
//})();

//用create创建一个窗口--推荐使用这个方式创建window
//(function() {
//	Ext.onReady(function() {
//
//		//第一个参数是指定创建的窗口类，跟java的反射很相似
//			//第二个参数是一个数组
//			var win = Ext.create('Ext.window.Window', {
//				width : 400,
//				height : 500,
//				title : 'create window'
//			});
//			win.show();
//
//		});
//})();

//(function() {
//	Ext.onReady(function() {
//	//自定义类， 此类继承了Ext.window.Window类
//		//类名MyClass
//		/**
//		 * Ext.define 第一个参数类名
//		 * 第二个参数数组
//		 * @memberOf {TypeName} 
//		 */
//		Ext.define('MyClass', {
//			extend:'Ext.window.Window',
//			width:400,
//			height:500,
//			title:'define a class',
//			initComponent: function() {
//				this.callParent(arguments);
//			}
//		})
//		//使用自定义的类
//		Ext.create('MyClass', {
//			//重写title属性
//			title:'define a class extend Ext.window.Window'
//		}).show();
//	});
//})();

/**
 * 通过程序的动态包括把另一个js文件包含进来
 * require方法的使用
 */
(function() {
	Ext.Loader.setConfig( {
		enabled : true,
		paths : {
			myApp : '../share/' //指定要导入的文件的位置,类似于命名空间
	}
	});
	Ext.onReady(function() {
		//通过id获取某个标签
			//on函数的一地个参数指定单击的时间
			//第二个参数指定单击的处理函数
			//		Ext.get("myButton").on("click", function() {
			//			//win.show();
			//			
			//		});
			Ext.get("myButton").on("click", function() {
				var win = Ext.create("share.myWindows", {
					title : 'mysharewin',
					price : 100, //重写了myWindows.js里的price属性的值
					requires : [ 'share.myWindows' ]
				});

				alert(win.getPrice());

				win.show();
			});

			//mixins
			//class say
			Ext.define("say", {
				cansay: function() {
					alert("hello");
				}
			});
			//class sing
			Ext.define('sing', {
				sing: function() {
					alert('sing a song.');
				}
			});
			Ext.define('user',{
				/*
				 * 相当于把上面自定义的say方法混合进user里了，
				 * 跟java的继承很类似，也可以用extend关键字
				 * 但是extend不能多继承，每个自定义的类里只能有一个extend关键字
				 */
				mixins: {
					say: 'say',
					sing: 'sing'
				}
				//用extend关键字
				//extend:'say'
			});
			//创建实例都用这种方式
			var u = Ext.create("user", {})
			/*
			 * 意思是：通过create传入的user找到自定义的user
			 * 在通过define的user找到minxins里的say
			 * 在找到自定义的say里的cansay这个方法
			 * 对象u拥有了继承过来的所以方法，如cansay和sing方法
			 */
			u.cansay();
			u.sing();
		})
})();
